A workflow in the current document generally refers to the flow or movement of data through a work process or a life cycle. In general, multiple events may occur throughout a workflow in many situations. For instance, in the context of employment within a corporation, some examples of the events may include hiring, working, terminating, etc. Moreover, some examples of events in the context of product development may include design, testing, mass manufacturing, discontinuation, etc. Typically, individual programs are developed to process data along the workflow. Referring back to the employment example above, the human resource (HR) department of the corporation may develop a program to process data of applicants and new hires, while other departments of the corporation may develop different programs to track the training and job performance of employees. Further, the data along the workflow generally has various attributes, which are properties of the data. The attributes may be changed when certain events occur. For instance, referring back to the employment example above, the data has an attribute of employment status, which takes on only one of the following values at a specific instance of time: “new hire,” “active,” “inactive,” “terminated,” etc. In the event of terminating an employee, the employment status may change from “active” to “terminated.”
Further, changes of the attributes are typically constrained by the specific policy applicable, such as a HR policy of the corporation, a product development protocol/procedure, etc. Since different programs in different departments of the corporation may process and/or operate on the data along the workflow, it is difficult to coordinate the programs to ensure the applicable policies are followed. Furthermore, when there is a change in one of the applicable policies, it is time-consuming to revise every one of the programs to ensure compliance with the changed policy.